package com.venutech.gongan.dao;

import com.baomidou.mybatisplus.plugins.Page;
import com.venutech.gongan.dto.CountByStatusDTO;
import com.venutech.gongan.dto.WorkCountByTypeAndStatusDTO;
import com.venutech.gongan.entity.OpWork;
import org.apache.ibatis.annotations.Param;

import java.util.Date;
import java.util.List;

public interface OpWorkMapper {

    //设备编码（GBID）查询工单
    OpWork getByDevCode(String devCode);

    //工单添加
    int insert(OpWork opWork);

    //根据ID返回对象
    OpWork getById(@Param("op_work_id") Integer op_work_id);

    //分页查询所有信息
    List<OpWork> getInfo(String begintime, String endtime, Page<OpWork> page, @Param("dev_name") String dev_name,@Param("sb_state") String sb_state,@Param("sb_status") String sb_status);

    //导出昨日Excel-根据上报时间 计算
    List<OpWork> getExportYesterday();

    //导出上周Excel-根据上报时间 计算
    List<OpWork> getExportLastWeek();

    //导出上月Excel-根据上报时间 计算
    List<OpWork> getExportLastMonth();

/**
 * @Author liuzhengli
 * @Description //TODO 根据设备编号来获取对应的设备运维数据
 * @Date  2021/8/19 0019 19:27
 * @Param * @param null:
 * @return
 */
    OpWork getSelectTbOpWork(@Param("sb_bm") String sb_bm);

    int getTodayUnhandledCount();

    int getTotalCount();

    int getCountByDay(@Param("startDay") Date startDay);

    List<OpWork> getByDateRegion(@Param("startDate") Date startDate, @Param("endDate") Date endDate);

    List<OpWork> getByFaultType(@Param("faultType") String faultType);

    /**
     * 根据状态统计
     * @return
     */
    List<CountByStatusDTO> countByStatus();

    List<WorkCountByTypeAndStatusDTO> countByTypeAndStatus();
}

